package com.mapper;

import com.domain.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author caishenao
* @description 针对表【user】的数据库操作Mapper
* @createDate 2023-10-12 20:12:53
* @Entity com.entity.User
*/
@Mapper
public interface UserMapper {

    /**
     * 根据邮件查询用户信息
     *
     * @param user 邮箱信息
     * @return 用户信息
     */
    User selectByEmail(User user);

    /**
     * 新增用户
     *
     * @param user 新增的用户信息
     */
    void insert(User user);

    /**
     * 根据账户查询用户信息
     *
     * @param userName 账户
     * @return 用户信息
     */
    User selectByUserName(@Param("userName") String userName);

    /**
     * 根据用户信息查询
     * @param user 用户信息
     * @return 用户信息集合
     */
    List<User> list(@Param("user") User user);

    /**
     * 根据用户id查询用户信息
     *
     * @param id 用户id
     * @return 用户信息
     */
    User getById(@Param("id") Integer id);

    /**
     * 根据用户id删除
     *
     * @param id 用户id
     */
    void deleteById(@Param("id") Integer id);

    /**
     * 选择性修改用户信息
     *
     * @param user 要修改的用户信息
     */
    void updateBySelect(@Param("user") User user);

    /**
     * 根据用户id查询用户信息
     * @param id 用户id
     * @return 用户信息
     */
    User getUserById(@Param("id") Integer id);
}




